package com.culturalyard.pojo.bean;


import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.io.Serializable;

/**
 *  经纬度对象
 * <br>
 *  x 经度 lon 浮点数，范围为180 ~ -180 <br>
 *  y 纬度 lat 浮点数，范围为90 ~ -90
 */
public class GeoPoint implements Serializable {

    /**
     * 参数校验
     *  在lon、lat 字段添加@Min @Max 注解，并且在使用该类的地方加 @Valid 注解
     *  如：
     *   @Valid
     *   private GeoPoint lonlat;
     */

    // controller @RequestBody 参数内嵌套对象，必须有一个无参的构造函数
    public GeoPoint() {}
    /**
     * 经度
     */
    @Min(value = -180, message = "经度lon不能小于-180")
    @Max(value = 180, message = "经度lon不能大于180")
    private double lon;
    /**
     * 纬度
     */
    @Min(value = -90, message = "纬度lat不能小于-90")
    @Max(value = 90, message = "纬度lat不能大于90")
    private double lat;

    /**
     *
     * @param x 经度 lon 浮点数，范围为180 ~ -180
     * @param y 纬度 lat 浮点数，范围为90 ~ -90
     */
    public GeoPoint(double x, double y) {
        this.lon = x;
        this.lat = y;
    }

    public double getLon() {
        return lon;
    }

    public void setLon(double lon) {
        this.lon = lon;
    }

    public double getLat() {
        return lat;
    }

    public void setLat(double lat) {
        this.lat = lat;
    }


    @Override
    public String toString() {
        return "GeoPoint{" +
                "lon=" + lon +
                ", lat=" + lat +
                '}';
    }

}

